import socket,socketserver

class custUDPRequestHandler(socketserver.BaseRequestHandler):
    def handle(self):
        # request 属性包含两个元素：
        # 第一个是接收的数据
        # 第二个是与客户端相关的 socket 对象
        data = self.request[0]
        # 获取客户端地址
        cl_addr = self.client_address[0]
        print(f'来自 {cl_addr} 的消息：')
        # decode方法默认使用UTF-8编码
        print(data.decode() + '\n')

# 声明服务器所使用的本地地址与端口。
sv_addr = ('',18600)
# 实例化UDPServer类，并调用serve_forever方法循环接收消息。
with socketserver.UDPServer(sv_addr,custUDPRequestHandler) as server:
    server.serve_forever()